So, in this function, we are using the back chain pointer, the link register save area, and one local variable. 所以,在这个函数中,我们使用了回链指针、链接寄存器保存区和一个本地变量。
You could, in fact, manually dump the contents of the frame pointer register and trace the entire stack. 实际上,您可以手工转储帧指针寄存器的内容并跟踪整个堆栈。
Important registers to look for when debugging through signals are the GPRs, instruction pointer ( NIP), machine state register ( MSR), trap, data address register ( DAR), and so on. 在调试信号时,需要查看的一些重要寄存器包括GPR、指令指针(NIP)、机器状态寄存器(MSR)、Trap、数据地址寄存器(DAR)等等。
This will lead to better stack tracebacks, as the frame pointer register is used as a frame pointer rather than a general purpose register. 这将产生更好的堆栈回溯,因为帧指针寄存器被用作帧指针而不是通用寄存器。
Pointer to the callback function to be invoked ( for one or more Event Types)& For each specific event, register a callback function, and then these functions are called when the event occurs. 指向要调用的回调函数的指针(对于一种或多种事件类型)&为每种特定的事件注册一个回调函数,然后将在事件发生时调用这些函数。
The other alternative is to modify the instruction pointer register using the rm command and just type go. 另一个办法是使用rm命令修改指令指针寄存器,然后只要输入go。
If the CONFIG_FRAME_POINTER option was set during kernel compilation, the frame pointer register is used to maintain stacks and, hence, the stack traceback can be performed correctly. 如果内核编译期间设置了CONFIGFRAMEPOINTER选项,那么就用帧指针寄存器来维护堆栈,从而就可以正确地执行堆栈回溯。